/**
 * Card is the data container for all needed card Data.
 * 
 * @author Johannes 
 * 
 * @since 30.03.11
 */
package model;

import java.io.Serializable;

import control.actiontypes;

public abstract class Card implements Serializable	{
		
	/**
	 *serialVersionUID 
	 */
	private static final long serialVersionUID = 1L;
	////////////////////////////////////////////////////
	/// Attributes								////////
	////////////////////////////////////////////////////
	
	protected actiontypes actiontype;
	protected String text;
	protected int value;
	
	////////////////////////////////////////////////////
	/// Abstract Methods						////////
	////////////////////////////////////////////////////
	
	public abstract int getHotelPrice();
	
	////////////////////////////////////////////////////
	/// Public Methods							////////
	////////////////////////////////////////////////////
	
	
	////////////////////////////////////////////////////
	/// Get Methods							    ////////
	////////////////////////////////////////////////////
	
	/**
	 * Returns the card's actiontype.
	 * @return actiontype
	 */
	public actiontypes getActiontype() {
		return actiontype;
	}
	
	/**
	 * Returns the text on the card. 
	 * @return text
	 */
	public String getText() {
		return text;
	}
	
	/**
	 * Returns the Value for paying or getting Money or the index of the field on which the player will become moved.
	 * @return value
	 */
	public int getValue() {
		return value;
	}
	
	
	////////////////////////////////////////////////////
	/// Set Methods							    ////////
	////////////////////////////////////////////////////
	
	/**
	 * Sets the value of the value variable.
	 * @param value
	 */
	public void setValue(int value) {
		this.value = value;
	}

	/**
	 * Sets the actiontype of the card.
	 * @param actiontype Contains an enumeration Type with the different specified actiontypes.
	 */
	public void setActiontype(actiontypes actiontype) {
		this.actiontype = actiontype;
	}
	
	/**
	 * Sets the action text for the card.
	 * @param text
	 */
	public void setText(String text) {
		this.text = text;
	}

	
}
